﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dominio;

namespace Persistencia
{
    public class BrUsuario : Broker
    {
        public override void Agregar(OPersistente o)
        {
            Usuario usuario = (Usuario)o;
            string sentencia = "INSERT INTO USUARIO (OID, CEDULA, NOMBRE, APELLIDO) VALUES (\'" + usuario.Oid + "\', " +
                "\'" + usuario.Cedula + "\', \'" + usuario.Nombre + "\' , \'" + usuario.Apellido + "\')";
            conexion.Ejecutar(sentencia);
        }

        public override void Modificar(OPersistente o)
        {
            //Producto pr = (Producto)o;
            //string sentencia = "UPDATE PRODUCTO SET  NOMBRE =" + "\'" + pr.Nombre +
            //    "\' , COSTO=" + pr.Costo.ToString() + ", PRECIOVENTA=" + pr.PrecioVenta.ToString() + ", TIEMPO=" + pr.Tiempo.ToString() + " WHERE OID = \'" + pr.Oid + "\'";
            //conexion.Ejecutar(sentencia);
        }

        public override void Eliminar(OPersistente o)
        {
            
        }

        public override void TraerDatos(OPersistente o)
        {
            Usuario usuario = (Usuario)o;
            string sentencia = "SELECT * FROM USUARIO WHERE OID = \'" + usuario.Oid + "\'";
            if (usuario.Cedula != null)
            {
                sentencia = sentencia + " OR CEDULA = \'" + usuario.Cedula + "\'";
            }            
            conexion.TraerDatos(sentencia);
            conexion.SiguienteRegistro();
            usuario.Oid = (String)conexion.ObtenerValor(0);
            usuario.Cedula = (String)conexion.ObtenerValor(1);
            usuario.Nombre = (String)conexion.ObtenerValor(2);
            usuario.Apellido = (String)conexion.ObtenerValor(3);            
            conexion.FinConsulta();
        }

        public override List<OPersistente> TraerLista(OPersistente o)
        {
            List<OPersistente> lista = new List<OPersistente>();
            Usuario usuario = (Usuario)o;
            string sentencia = "SELECT * FROM USUARIO";
            conexion.TraerDatos(sentencia);
            while (conexion.SiguienteRegistro())
            {
                usuario = new Usuario();
                usuario.Oid = (String)conexion.ObtenerValor(0);
                usuario.Nombre = (String)conexion.ObtenerValor(1);
                usuario.Nombre = (String)conexion.ObtenerValor(2);
                usuario.Apellido = (String)conexion.ObtenerValor(3);                
                lista.Add(usuario);
            }
            conexion.FinConsulta();
            return lista;
        }
    }
}
